
#-*- coding:utf-8 -*-
'''
@author = Alvin

合并指定文件路径下所有文件
'''
import os

path = 'C:\\Users\\dianjoy\\Desktop\\two'

def combine(path):
    filenames = os.listdir(path)  # 列出指定路径下所有文件名
    file = open(path + '\\tes.java', 'a')   # 合并后的文件名称，.java可以根据实际需求修改，若file文件不存在，自动创建
    names = []
    for filename in filenames:    # 遍历所有文件名
        filepath = path + '\\' + filename   #为文件名添加上路径
        print(filepath)
        names.append(filepath)
        with open(filepath, encoding='utf-8', errors= 'ignore') as f:   # 打开文件
            try:
                file.write(f.read())   # 将读取的内容写入到指定的文件中
            except Exception as e:
                pass
            f.close()       # 关闭文件
        file.write('\n')    # 每合并一个文件，添加一个空行
    file.close()    # 执行结束，关闭合并后的文件
    return len(names)

if __name__ == '__main__':
    path = 'C:\\Users\\dianjoy\\Desktop\\one'
    s = combine(path)
    print(s)






'''

一次运行时偶然发现，单个文件数据量较大时结果不准确，当时想要合并csv文件，于是用pandas库试试
'''

'''
该脚本在spyder里运行提示系统找不到指定的路径，但是在jupyter notebook中可以正常运行，
估计是路径格式问题，以后再仔细修改
'''



import os
import pandas as pd
import numpy as np

path = "E:cheetah/预提和结算/结算/18.7月结算/作弊数据/ceshi"
filenames = os.listdir(path)

df0 = pd.read_csv(path + '/' + filenames[0], engine = 'python')

for name in filenames:
    if name == filenames[0]:
        continue
    df = pd.read_csv(path + '/' + name, engine = 'python')
    print(name)
    df0 = pd.concat([df0, df])
print("一共合并了%d个文件" % len(filenames))   
df0.to_csv(path + '/' + 'all_keywords.csv', index = 0)